home *** CD-ROM | disk | FTP | other *** search
- + = added
- - = removed
- * = changed
- ! = fixed bug - or at least replaced by another one
-
- Revisions to beta 1:
- + Additions to the .H file to allow usage in C++
- * Correct working with C++ has been verified.
- + Add warning to .DOC: FSC-0001 covers 2D adressing only. Zone and point fields
- aren't used correctly by all software!!
- ! The *_prevto () family contained a major bug: if the record number passed to
- the function is lower than 500, the function returned that same number.
- Fixed.
- * Used TDSTRIP on the .OBJ files to remove junk before adding them to the .LIB
- files. Stupid that I didn't do that before. I tried, but for some reason it
- didn't work. Now it did, though. :-)
- + msg_write_new would accept non-existent (<= 0 or > 200) board numbers. Added
- a routine to check the board number and return an error if need be.
- ! The internal Pascal <--> C format conversion routine would overwrite
- existing records when writing headers to disk. Fixed.
- ! When making consecutive calls to msg_write_new, not all messages would be
- written to the correct record number. This seemed to be related to internal
- DOS buffering: after writing a record, the filelength doesn't seem to have
- increased. If the message base is closed and reopened, everything's fine.
- This problem turned out to be caused by the fact that I used the good old
- filelength () call (a level 1 call) on a stream (which is subject to level 2
- handling). But since a stream buffers writes, a level 1 call won't see any
- appended bytes until the stream buffer is flushed. Therefore, the following
- construction
- fwrite (& buffer, sizeof (MSGHDR_RECORD), 1, f_msghdr);
- len = filelength (fileno (f_msghdr));
- will return the number of bytes *before* the fwrite, unless the stream
- buffer has overflowed and was flushed - but the returned length is probably
- incorrect.
- Replaced all this by a routine that utilizes level 2 calls only.
- ! Corrected a confusing typo in the errorstring example in the documentation.
-
- Revisions to BETA 2:
- ! net_next () contained a small but pesky bug, causing it not to work. :-)
- Fixed.
- + Added the msg_fixup4d () and net_fixup4d () functions to overcome the problem
- caused by the fact that the zone and point fields in the message headers are
- not supported by FSC-0001. Some message editors and mailers use these fields
- for something else or not at all. The new functions convert the header fields
- into INTL and TOPT/FMPT kludges.
- - Removed the #include <dir.h> in MB_LIB.H. It wasn't needed anymore, and it
- got in the way of the C++ users.
- ! Because I hadn't read the C reference carefully enough :-) I had made a
- mistake when converting a time structure into a formatted message header
- field. This caused messages to be written on the most unlikely dates. Fixed.
- While I was at it I've changed the netmail header formatting to be 100%
- FSC-0001 compliant.
- - MA_UNSENT didn't do what I expected it to do. In the WRITEMSG.C example I'm
- no longer messing around with it. :-)
- * Ran the .DOC through the spell checker after suggestions by Albert Roos.
- Pfffff....... any idea what a mess it is when you run C source examples
- through Word Perfect? :-(
- * Changed a few variable types which might have caused portability problems
- in the future.
- ! The key file didn't always give a clean compile. It does now.
-
- Revisions to BETA3:
- * Changed the names of a few internal functions in order to avoid conflicts
- in the future, for example when MB_lib will be used with the C version of
- RADU (RA Door Lib - RADO? RADL? RADOL? Suggestions welcome...)
- ! The net_write routine returned a NULL instead of a nonzero integer on file
- creation errors. Fixed.
- ! I had made a stupid mistake involving some pointer declarations an a bit of
- tricky mixed-model assembly routines. Fixed. I hope.
- + Tested MB_lib in a DesqView environment, just to be sure. No problems found.
- ! Believe it or not, but I've found yet another bug in the *prev* search
- routines... :-( Comparing signed and unsigned integers caused an infinite
- loop when searching backward under special circumstances.
-
- March 1993: Version 1.0 released!
-
-
- Ideas for a next version (if and when):
- + Thinking about a txt_merge function. This could easily be done by dumping a
- message text to the txt_add () function, if there wasn't the problem that the
- string print routine is supposed to accept a (char *) and nothing more - so
- how do we pass the text handle to that routine? Could be done by means of an
- internal global, but I consider this unelegant.
- * Performance could be increased by utilizing massive internal buffering.
- However, precautions should be taken to avoid trouble with file sharing!
- (The buffers should be shared as well, I think. Any ideas?)
-